(declare-fun a () String)
(declare-fun b () String)
(declare-fun c () String)
(assert (str.in_re (str.++ b "z" a) (re.union (str.to_re "z") (str.to_re "a"))))
(assert (str.in_re (str.++ b "z" a) (re.inter (str.to_re "z") (str.to_re "b") (str.to_re "a"))))
(assert (str.in_re (str.++ b "z" a) (re.++ (re.comp (re.union (str.to_re "z") (str.to_re "b") (re.inter (str.to_re "a") (str.to_re "z")))) (str.to_re "a"))))
(assert (str.in_re (str.++ b "z" a) (re.inter (re.opt (re.union (str.to_re "z") (str.to_re "a") (re.inter (re.+ (str.to_re "a")) (str.to_re "")))) (str.to_re "a"))))
(assert (str.in_re a (re.* (re.range "a" "u"))))
(assert (str.in_re b (re.opt (re.range "a" "u"))))
(check-sat)
